
#undef BOOST_TEST_DYN_LINK
#undef BOOST_TEST_MAIN
#undef BOOST_TEST_MODULE //TestModel2Cpp
#include <boost/test/unit_test.hpp>

#include <iostream>

#include "Universe/Atlantis/Derived.hpp"


BOOST_AUTO_TEST_SUITE( TestingDerived )


BOOST_AUTO_TEST_CASE( testDirectOperations )
{
	Universe_Atlantis::Derived drvd;
	BOOST_REQUIRE_EQUAL( drvd.plainDerivedQueryLeaf(), "plainDerivedQueryLeaf_");
	BOOST_REQUIRE_EQUAL( drvd.plainDerivedQuery(), "plainDerivedQuery_");
	BOOST_REQUIRE_EQUAL( drvd.plainDerived(), "plainDerived_");
	BOOST_REQUIRE_EQUAL( drvd.plainDerivedLeaf(), "plainDerivedLeaf_");
}

BOOST_AUTO_TEST_CASE( testInheritedOperations )
{
	Universe_Atlantis::Derived drvd;

	BOOST_REQUIRE( drvd.plainBaseLeaf() );
	BOOST_REQUIRE( drvd.plainBase() );
	BOOST_REQUIRE( drvd.plainBaseQuery(37) == 37 );
	BOOST_REQUIRE( drvd.abstractOp() );
	BOOST_REQUIRE( Universe_Atlantis::Derived::abstractOpStatic() );
	BOOST_REQUIRE( drvd.ifderPlainLeaf() == "ifderPlainLeaf_" );
	BOOST_REQUIRE( drvd.ifderPlain() );
	BOOST_REQUIRE( drvd.ifbasePlainQuery() > 0 );
	BOOST_REQUIRE( (drvd.ifbasePlain(), 1) );
	BOOST_REQUIRE( drvd.ifderPlainQuery() > 0.0 );
	BOOST_REQUIRE( (drvd.ifbasePlainLeaf(), 1) );
	BOOST_REQUIRE( (Universe_Atlantis::Derived::ifbaseStatic(), 1) );
	BOOST_REQUIRE( (Universe_Atlantis::Derived::ifderStatic(), 1) );
}


BOOST_AUTO_TEST_SUITE_END()

